//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#if !defined(__STUB_H__)
#define __STUB_H__

#include <car.h>

_ELASTOS_NAMESPACE_USING

#define INDEX_OF_INVOKE_IN_VTBL BASE_INTERFACE_METHOD_COUNT

interface IStub : public IInterface
{
    virtual CARAPI Invoke(
            /* [in] */ void *pvData,
            /* [in] */ UInt32 uSize,
            /* [out] */ void *pvOutData,
            /* [in] */ UInt32 uOutSize) = 0;

    virtual CARAPI GetOid(
            /* [out] */ oid_t *pOid) = 0;

    virtual CARAPI GetClsid(
            /* [out] */ EMuid *pClsid) = 0;

    virtual CARAPI InterfaceIndex(
            /* [in] */ PInterface pObj,
            /* [out] */ UInt32 *puIndex) = 0;

    virtual CARAPI GetClassEntry(
            /* [out] */ UInt32 *pClassEntry) = 0;

};

#endif // __STUB_H__
